package speedchina.dao.statistics;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import speedchina.dto.ProjectStatisticsParamDTO;
import speedchina.dto.UserStatisticsParamDTO;
import speedchina.vo.statistics.ProjectDetailVO;
import speedchina.vo.statistics.ProjectStatisicsVO;
import speedchina.vo.statistics.UserDetailVO;
import speedchina.vo.statistics.UserStatisicsVO;

import java.util.List;


/**
 * @author earthchen
 * @date 2018/10/22
 **/
public interface StatisticsMapper
{

    /**
     * 根据请求参数统计项目工时
     *
     * @param dto
     * @return
     */
    List<ProjectStatisicsVO> projectStatistics(@Param("dto") ProjectStatisticsParamDTO dto);

    /**
     * 分页获取请求参数统计项目工时
     *
     * @param page
     * @param dto
     * @return
     */
    IPage<ProjectStatisicsVO> projectStatistics(Page page, @Param("dto") ProjectStatisticsParamDTO dto);

    /**
     * 根据请求参数统计员工工时
     *
     * @param dto
     * @return
     */
    List<UserStatisicsVO> userStatistics(@Param("dto") UserStatisticsParamDTO dto);

    /**
     * 分页根据请求参数统计员工工时
     *
     * @param page
     * @param dto
     * @return
     */
    IPage<UserStatisicsVO> userStatistics(Page page, @Param("dto") UserStatisticsParamDTO dto);

    /**
     * 用户工时详情
     *
     * @param dto
     * @return
     */
    List<UserDetailVO> userDetail(@Param("dto") UserStatisticsParamDTO dto);

    /**
     * 分页用户工时详情
     *
     * @param dto
     * @return
     */
    IPage<UserDetailVO> userDetail(Page page,@Param("dto") UserStatisticsParamDTO dto);

    /**
     * 项目工时统计
     *
     * @param dto
     * @return
     */
    List<ProjectDetailVO> projectDetail(ProjectStatisticsParamDTO dto);

    /**
     * 项目工时统计
     *
     * @param dto
     * @return
     */
    IPage<ProjectDetailVO> projectDetail(Page page, @Param("dto") ProjectStatisticsParamDTO dto);
}
